/**
 * APIMessage.java
 * ************************** 
 * @date Apr 18, 2011
 * @author Michele Tamburini
 * 
 * **************************
 */
package infrastructureAPI.APIMessages;

import infrastructureAPI.Requester;
import infrastructureAPI.algorithms.APIFunction;
import messages.Message;

/**
 * Description: 
 * The RequestMessage is a kind of Message forwarded to a 
 * system object of the cloud. 
 * It contains an APIFunction that
 * represents the feature to be executed. 
 * Because all requests are supposed to come through
 * a node belonging to the cloud,
 * the RequestMessage contains also the node Requester.
 * 
 *
 */
public interface RequestMessage extends Message {
	
	/**
	 * Returns the APIFunction that the current message
	 * is carrying.
	 * @return
	 */
	public APIFunction getFunction();
	
	/**
	 * Returns the Requester node though which the 
	 * request has been submitted.
	 * @return
	 */
	public Requester replyTo();

}
